جزوه · فصل پنجم · جلسه ۵۳ · Single User Mode روی الما ۱۰ ← بازگشت به فهرست
📘 فصل پنجم · جلسه ۵۳ Single User Mode روی الما ۱۰
📅 تاریخ: چهارشنبه، ۲۸ مرداد ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 AlmaLinux 10 (Red Hat Family)
از این بخش حتماً در امتحان سوال عملی می‌آید! حتماً مراحل را گام‌به‌گام حفظ کنید.
🔐 قبل از شروع، یه مثال ساده:

فرض کن رمز مدیریت سرور رو گم کرده‌ای و هیچ راهی برای ورود نداری. تنها راه اینه که از طریق کنسول (یا VNC) وارد بشی و با یک ترفند ساده، رمز رو عوض کنی. توی الما ۱۰، با اضافه کردن rd.break به پارامترهای بوت، می‌تونی این کار رو بکنی!

▍ Single User Mode در الما ۱۰ چیست؟

AlmaLinux 10 یک توزیع مبتنی بر رد هت (RHEL) است که از systemd و GRUB 2 استفاده می‌کند. برای ورود به حالت تک‌کاربره در این توزیع، از پارامتر rd.break در زمان بوت استفاده می‌شود.

🎯 کاربردهای اصلی در الما ۱۰:
  • ریست کردن رمز عبور کاربر root
  • تعمیر فایل‌های سیستمی خراب شده
  • رفع مشکلات مربوط به fstab یا پارتیشن‌بندی
  • بررسی و تعمیر فایل سیستم (با fsck)

▍ شرایط پیاده‌سازی

در امتحان معمولاً فرض بر این است که رمز GRUB وجود ندارد و شما دسترسی فیزیکی به سیستم دارید.

▍ مراحل کامل ریست کردن رمز root در الما ۱۰

🔹 مرحله ۱: ورود به منوی GRUB و ویرایش پارامترها

  1. سیستم را ری‌استارت کنید.
  2. در زمان نمایش منوی GRUB، روی گزینه مورد نظر برای بوت کردن کلید E را بزنید تا وارد حالت ویرایش شوید.
  3. به دنبال خطی بگردید که با linux یا linux16 شروع می‌شود (معمولاً خطی که هسته را مشخص می‌کند).
  4. در انتهای آن خط، rd.break را اضافه کنید. همچنین برای جلوگیری از مشکلات SELinux، enforcing=0 را نیز اضافه کنید.
linux /vmlinuz-... root=/dev/mapper/almalinux-root ro quiet # تغییر به: linux /vmlinuz-... root=/dev/mapper/almalinux-root ro rd.break enforcing=0

نکته: ممکن است مسیر ریشه به صورت root=UUID=... یا root=/dev/mapper/... باشد. جای آن را عوض نکنید، فقط rd.break enforcing=0 را به انتها اضافه کنید.

۴. برای بوت شدن با این پارامترها، کلید Ctrl+X یا F10 را بزنید.

پارامتر rd.break سیستم را در مرحله initramfs (قبل از mount شدن ریشه) متوقف می‌کند. enforcing=0 SELinux را غیرفعال می‌کند تا بعداً مشکلی برای لاگین نداشته باشید.

🔹 مرحله ۲: ورود به شل initramfs و Mount کردن ریشه

بعد از بوت، وارد یک شل محدود به نام switch_root می‌شوید. سیستم فایل ریشه در /sysroot Mount شده است، اما به صورت فقط خواندنی (ro). باید آن را به صورت خواندنی-نوشتنی (rw) Mount کنید:

switch_root:/# mount -o remount,rw /sysroot

توضیح: mount -o remount,rw سیستم فایل را از حالت فقط خواندنی به خواندنی-نوشتنی تغییر می‌دهد.

🔹 مرحله ۳: تغییر ریشه (chroot) به سیستم اصلی

switch_root:/# chroot /sysroot

توضیح: chroot شما را به محیط سیستم اصلی می‌برد تا بتوانید دستورات را روی آن اجرا کنید. پرامپت به sh-5.1# یا مشابه آن تغییر می‌کند.

در الما ۱۰ (و همه توزیع‌های رد هت)، برای تغییر رمز root باید حتماً chroot /sysroot را اجرا کنید. در غیر این صورت، رمز را روی محیط موقت (initramfs) تغییر می‌دهید که بعد از ری‌بوت از بین می‌رود.

🔹 مرحله ۴: تغییر رمز عبور root

sh-5.1# passwd root New password: ********
Retype new password: ********
passwd: all authentication tokens updated successfully.

توضیح: رمز جدید را دو بار وارد کنید.

⚠️ نکته مهم درباره SELinux:

اگر SELinux فعال باشد و رمز را عوض کنید، ممکن است بعد از ری‌بوت نتوانید با رمز جدید لاگین کنید. برای جلوگیری از این مشکل، دو راه دارید:

  • راه اول: در مرحله اول، enforcing=0 را اضافه کنید (که قبلاً انجام دادیم).
  • راه دوم: بعد از تغییر رمز، فایل زیر را اجرا کنید تا SELinux در بوت بعدی ریلبل (Relabel) شود:
    sh-5.1# touch /.autorelabel
اگر touch /.autorelabel را اجرا کنید، در بوت بعدی سیستم همه فایل‌ها را ریلبل (Relabel) می‌کند که ممکن است چند دقیقه طول بکشد. این کار کاملاً عادی است.

🔹 مرحله ۵: خروج و ری‌بوت

sh-5.1# exit switch_root:/# reboot -f

توضیح: با exit از محیط chroot خارج می‌شوید و با reboot -f سیستم را مجدداً راه‌اندازی می‌کنید.

▍ مقایسه روش الما ۱۰ با اوبونتو

🔵 الما ۱۰ (رد هت)

  • پارامتر GRUB: rd.break enforcing=0
  • نیاز به chroot /sysroot: ✅ بله
  • محیط اولیه: initramfs
  • پس از تغییر رمز: نیاز به touch /.autorelabel (در صورت فعال بودن SELinux)

🟠 اوبونتو / دبیان

  • پارامتر GRUB: init=/bin/bash
  • نیاز به chroot: ❌ خیر
  • محیط اولیه: bash (مستقیماً)
  • پس از تغییر رمز: نیازی به کار اضافی نیست
سوال امتحانی احتمالی: «تفاوت روش ورود به Single User Mode در الما ۱۰ و اوبونتو چیست؟» پاسخ: در الما ۱۰ از rd.break و chroot /sysroot استفاده می‌شود، اما در اوبونتو با init=/bin/bash مستقیماً وارد شل root می‌شوید.

▍ رفع مشکلات رایج در الما ۱۰

مشکل راه‌حل
سیستم فایل ریشه Mount نشده است دستور mount -o remount,rw /sysroot را اجرا کنید.
بعد از تغییر رمز، لاگین نمی‌شود در مرحله اول enforcing=0 را اضافه کنید یا touch /.autorelabel را اجرا کنید.
GRUB رمز دارد و نمی‌توانید ویرایش کنید باید رمز GRUB را بدانید. در غیر این صورت، از دیسک زنده (Live CD) استفاده کنید.
پس از reboot -f سیستم هنگ می‌کند از reboot بدون -f استفاده کنید یا سیستم را به‌صورت دستی ری‌استارت کنید.
✅ جمع‌بندی نهایی برای امتحان:
  • روش الما ۱۰: rd.break enforcing=0mount -o remount,rw /sysrootchroot /sysrootpasswd rootexitreboot -f
  • روش اوبونتو: init=/bin/bashpasswd rootreboot -f
  • SELinux: اگر فعال است، از enforcing=0 یا touch /.autorelabel استفاده کنید.
  • رمز GRUB: اگر وجود دارد، باید آن را بدانید.